#!/bin/bash
# **********************************************************
# * Author : liangliangSu
# * Email : sll917@hotmail.com
# * Create time : 2022-11-27 21:28
# * Filename : count_twocolorball.sh
# **********************************************************
echo "(1)--------------------------------------------"
# 统计双色球各个数字的中奖概率
# 往期双色球中奖号码如下:
# 01 04 11 28 31 32  16
# 04 07 08 18 23 24  02
# 02 05 06 16 28 29  04
# 04 19 22 27 30 33  01
# 05 10 18 19 30 31  03
# 02 06 11 12 19 29  06
# ............
# 统计篮球和红球数据出现的概率次数(篮球不分顺序,统计所有篮球混合在一起的概率)

echo "篮球数据出现的概率次数"
awk '{print $1"\n"$2"\n"$3"\n"$4"\n"$5"\n"$6}' 15NumberOfCounts.info | sort | uniq -c | sort -g

echo "红球数据出现的概率次数"
awk '{print $7}' 15NumberOfCounts.info | sort | uniq -c | sort -g

echo "(2)--------------------------------------------"
# 写一个 bash 脚本以统计一个文本文件中每个单词出现的频率。
# 思考： 
# 1、需要把文件里的单词都变成一列，然后进行统计。
# 2、用循环语句对每个单词进行统计，相同的即+1

# 方法一：tr获取单词
cat 15NumberOfCounts.conf |tr -cs "[a-z][A-Z]" "\n" |tr '[:upper:]' '[:lower:]' |sort|uniq -c|sort -r|awk '{print $2,$1}'

: '
tr 命令：tr是transform的缩写，该命令是著名的流处理命令sed的简化版，也是用来对文档进行转换的。tr -cs "[a-z][A-Z]" "\n" -c表示取"[a-z][A-Z]"的补集（complement），-s 表示把连续的匹配压缩成一个"\n"，所以整个命令就是把除了字母外的其他字符一律压缩成换行符，如果有连续的匹配，则只转换成一个换行符。
tr A-Z a-z 把大写统一转换成小写。
sort 排序 按字母顺序
uniq 去重 该命令必须对排序好的文档进行，-c 表示打印出字母的重复次数
然后再次 sort -r ，反向排序，-n正向排序；这次sort比较复杂，因为在uniq命令后 输出结果已经变成了 如下形式：
n word (单词的重复次数+空格+单词)
awk '{print $2,$1}' 替换下n word的位置
'

echo "(3)--------------------------------------------"
# 方法二、awk功能
egrep -o "\b[[:alpha:]]+\b" 15NumberOfCounts.conf | awk '{count[$0]++}END{for(ind in count){printf("%-14s%d\n",ind,count[ind]);}}' |sort -k2 -r
